//
// RS Game Framework
// Copyright © 2009 Jedd Haberstro
// jhaberstro@gmail.com
// 
// $Id:
//

#ifndef RS_UNITTEST_UNITTEST_HPP
#define RS_UNITTEST_UNITTEST_HPP

#include "rs/unittest/ConsoleTestReporter.hpp"
#include "rs/unittest/TestCase.hpp"
#include "rs/unittest/TestFailure.hpp"
#include "rs/unittest/TestReporter.hpp"
#include "rs/unittest/TestRunner.hpp"
#include "rs/unittest/TestSuite.hpp"
#include "rs/unittest/TestSuiteManager.hpp"


#define RS_TEST_CASE(suite, testName) \
    class testName##UnitTest : public unittest::TestCase \
    { \
    public: \
        testName##UnitTest() : TestCase(#testName, #suite, __FILE__, __LINE__) { \
            (unittest::TestSuiteManager::Instance().GetTestSuite(#suite))->AddTestCase(this); \
        } \
        \
    protected: \
        \
        virtual void RunImplementation(); \
    } testName##UnitTestInstance; \
    \
    void testName##UnitTest::RunImplementation()


#endif // RS_UNITTEST_UNITTEST_HPP